/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.simba.coherence;

import java.util.Set;
import org.simba.utils.Configuration;

/**
 * This interface is dedicated to approaches for computing the coherence of two
 * URIs given a SPARQL endpoint
 * @author ngonga
 */
public interface CoherenceFunction {
    /** Computes the coherence of two URIs
     * 
     * @param uri1 First input URI
     * @param uri2 Second input URI
     * @param endPoint Endpoint for retrieval of the coherence
     * @param graph Graph to be used for the query
     * @return Coherence value. Not necessarily normed.
     */
    public double getCoherence(String uri1, String uri2, String endPoint, String graph);
    
    /** Computes a coherence matrix for a given set of URIs
     * 
     * @param uris Set of input URIs
     * @param endPoint SPARQL endpoint
     * @param graph Graph to be used
     * @return Coherence matrix
     */
    public CoherenceMatrix getCoherence(Set<String> uris, String endPoint, String graph);
    public CoherenceMatrix getCoherence(Set<String> uris, Configuration c);
}
